﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;

namespace QldtSdh.DAL.Models
{
    public partial class LopHocPhan
    {
        public string TenLopHocPhanFull
        {
            get
            {
                return string.Format("{0}-{1}", MaLopHocPhanGUID, TenLopHocPhan);
            }
        }

        [NotMapped]
        public int SoHocVienConNo
        {
            get;
            set;
        }

        [NotMapped]
        public bool IsSelected
        {
            get;
            set;
        }

        [NotMapped]
        public string TinhTrang
        {
            get;
            set;
        }

        /// <summary>
        /// Tên lớp khoá ngành tham chiếu khi tạo lớp học phần. Được dùng để sắp xếp danh sách các Lớp học phần theo tên lớp khoá ngành
        /// </summary>
        [NotMapped]
        public string _TenLopKhoaNganhThamChieu
        { get; set; }

        /// <summary>
        /// Là học phần bắt buộc của lớp khoá-ngành trong khung chương trình đào tạo?
        /// </summary>
        [NotMapped]
        public bool _LaHocPhanBatBuocCuaLopKhoaNganhTrongCTDT
        { get; set; }

        /// <summary>
        /// Lớp khoá-ngành tham chiếu
        /// </summary>
        [NotMapped]
        public LopKhoaNganh _LopKhoaNganhThamChieu { get; set; }

        /// <summary>
        /// Số học viên thuộc về lớp học phần
        /// </summary>
        public int _SoHocVien
        {
            get
            {
                if (this.LopHocPhan_HocVien == null)
                    return -1;
                return this.LopHocPhan_HocVien.Count;
            }
        }

        public string _TenLopKhoaNganh { get { return _LopKhoaNganhThamChieu == null ? "NA" : _LopKhoaNganhThamChieu.TenLopKhoaNganh; } }

        public string _TenHocPhan { get { return HocPhan == null ? "NA" : HocPhan.TenHocPhan; } }

        public string _MaHocPhan { get { return HocPhan == null ? "NA" : HocPhan.MaHocPhan; } }

        public int _SoTinChi { get { return HocPhan == null ? -1 : HocPhan.SoTinChi; } }

        [NotMapped]
        public string _TenNganhDaoTao { get; set; }
    }
}
